var { verifytoken } = require('../generate_token/generateToken')

exports.short_checkAuth = function (secretKey) {//短时间验证token
    return (req, res, next) => {
        const { authorization } = req.headers; // 获取请求头中的token
        if (!authorization) {
            return res.send({
                code: 1001,
                message: "您没有权限，当前您没有携带token"
            })
        } else {
            const short = authorization.split(" ")[0]; // 获取token
            let token = short.split("+")[1]; // 获取token
            const claim = verifytoken(token, secretKey); // 验证token
            if (claim === null) {
                return res.send({
                    code: 1002,
                    message: "您没有权限，短token过期"
                })
                // return res.status(401).json({ message: "您没有权限，可能是没有携带token，或者是token过期，请先登录", code: 401 });
            } else {
                req.claim = claim; // 将解析后的token信息存入req.claim中
                next();//如果token验证通过，则执行下一个
            }
        }
    }
}



exports.length_checkAuth = function (secretKey) {
    return (req, res, next) => {
        const { authorization } = req.headers;
        if (!authorization) {
            // return res.status(401).json({ message: "您没有权限，可能是没有携带token，或者是token过期，请先登录", code: 401 });
            return res.state(1003).send({
                code: 1003,
                message: "短token过期，当前没有携带长token"
            })
        } else {
            const length_token = authorization.split(" ")[1];
            const token = length_token.split("+")[1];
            const claim = verifytoken(token, secretKey);//解析token
            if (claim === null) {
                return res.send({
                    code: 1004,
                    message: "长token过期，请重新登录"
                })
                // return res.status(401).json({ message: "您没有权限，可能是没有携带token，或者是token过期，请先登录", code: 401 });
            } else {
                req.claim = claim;
                next();//如果token验证通过，则执行下一个
            }
        }
    }
}